<template>
  <!-- 搜索弹出层--第3个界面--产品列表页 -->
  <div>
    <van-dropdown-menu>
      <!-- v-model="value1"确定勾选哪一个的 
        options  确定有哪些选项的
       -->
      <van-dropdown-item
        v-model="value1"
        :options="option1"
        title="综合"
        disabled
      />
      <van-dropdown-item
        v-model="value1"
        :options="option1"
        title="价格"
        @change="priceChange"
      />
      <van-dropdown-item
        v-model="value2"
        :options="filterCategory"
        title="分类"
        @change="categoryChange"
      />
    </van-dropdown-menu>

    <!-- 如果没有产品，Products就不展示 ，而要展示Empty组件-->
    <van-empty
      v-if="productsListData.length == 0"
      description="对不起，没有这些商品"
    />
    <Products v-else :productsListData="productsListData" />
  </div>
</template>

<script>
import Products from "../Products.vue";
export default {
  props: ["productsListData", "filterCategory"],
  components: {
    Products,
  },
  methods: {
    priceChange(value) {
      // console.log(value);
      this.$emit("priceChange", value);
    },
    categoryChange(value) {
      // value=分类id
      // console.log("选中了", value);
      // 选择分类选项,渲染页面,所以要发送请求,这里的请求和SerachPopup中的onSearch里面的请求是一样的,所以只要调用onSearch方法,但是里面一些数据需要改变,所以现在SerachPopup中定义一个方法去修改我们想要的数据,然后通过父传子的方法直接调用
      this.$emit("categoryChange", value);
    },
  },
  // 需求: 正确勾上分类中的某一项,要把value2做活了,value2的值必须为filterCategory这个数组中checked为true的这一项
  // 要在挂载页面之前,更新数据,所以我们把他写在beforeUpdate中
  beforeUpdate() {
    // 遍历filterCategory中的每一项,把checked为真的这一项的value值，给到this.value2
    // filterCategory为:
    // [
    //   { text: '全部', value: 0 ,checked: true},
    //   { text: '居家', value: 102000 ,checked: false},
    // ]
    // this.value2 =
    this.filterCategory.map((item) => {
      if (item.checked) {
        this.value2 = item.value;
      }
    });
  },
  data() {
    return {
      value1: "",
      value2: 1005000,
      option1: [
        { text: "价格由高到低", value: "desc" },
        { text: "价格由低到高", value: "asc" },
      ],
      // option2: [
      //   { text: "全部", value: "a" },
      //   { text: "居家", value: "b" },
      // ],
    };
  },
};
</script>
 
<style lang = "less" scoped>
</style>